package com.proyecto.estavoley;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;

public class PlantillaDataSource {

	private SQLiteDatabase database;
	private EstaVoleyDataBase dbHelper;
	private String[] allColumns = { EstaVoleyDataBase.DORSAL,
			EstaVoleyDataBase.NOMBRE, EstaVoleyDataBase.PUESTO,
			EstaVoleyDataBase.ALTURA, EstaVoleyDataBase.FECHA_NACIMIENTO,
			EstaVoleyDataBase.PROCEDENCIA };

	public PlantillaDataSource(Context context) {
		dbHelper = new EstaVoleyDataBase(context);
	}
	
	public void open() throws SQLException {
		database = dbHelper.getWritableDatabase();
	}

	public void close() {
		dbHelper.close();
	}

	public Jugador crearJugador(String jugador) {

		ContentValues values = new ContentValues();
		values.put(EstaVoleyDataBase.DORSAL, jugador);
		Integer insertDorsal = (int) database.insert(
				EstaVoleyDataBase.TABLE_JUGADORES, null, values);

		Cursor cursor = database.query(EstaVoleyDataBase.TABLE_JUGADORES,
				allColumns, EstaVoleyDataBase.DORSAL + " = " + insertDorsal,
				null, null, null, null);

		cursor.moveToFirst();
		return cursorToJugador(cursor);
	}

	public void deleteJugador(Jugador jugador) {
		Integer dorsal = jugador.getDorsal();
		database.delete(EstaVoleyDataBase.TABLE_JUGADORES,
				EstaVoleyDataBase.DORSAL + " = " + dorsal, null);
	}
	
	public List<Jugador> getAllJugadores(){
		List<Jugador> jugadores= new ArrayList<Jugador>();
		Cursor cursor = database.query(EstaVoleyDataBase.TABLE_JUGADORES, allColumns, null, null, null, null, null);
		cursor.moveToFirst();
			while (!cursor.isAfterLast()) {
				Jugador jugador = cursorToJugador(cursor);
				jugadores.add(jugador);
				cursor.moveToNext();
			}
			cursor.close();
			return jugadores;
	}
	
	private Jugador cursorToJugador(Cursor cursor){
		Jugador jugador = new Jugador();
		jugador.setDorsal(cursor.getInt(0));
		jugador.setNombre(cursor.getString(1));
		jugador.setPuesto(cursor.getString(2));
		jugador.setAltura(cursor.getString(3));
		jugador.setFecha_nacimiento(cursor.getString(4));
		jugador.setProcedencia(cursor.getString(5));
		return jugador;
	}
}
